Jupyterノートブックプロット¶
Juptyer ノートで pyvista でインタラクティブにプロット!
Demo Using pythreejs¶
Create interactive physically based rendering using pythreejs.
import pyvista as pv
from pyvista import examples
# download an example and display it using physically based rendering.
mesh = examples.download_lucy()
mesh.plot(color='lightgrey', pbr=True, metallic=0.2,
jupyter_backend='pythreejs')
ipygany を使ったデモ¶
from pyvista import demos
# basic glyphs demo
mesh = demos.glyphs(2)
text = demos.logo.text_3d("I'm interactive!", depth=0.2)
text.points *= 0.1
text.translate([0, 1.4, 1.5])
mesh += text
mesh['Example Scalars'] = mesh.points[:, 0]
mesh.plot(cpos='xy', jupyter_backend='ipygany', show_scalar_bar=True)
panel を使ったデモ¶
from pyvista import demos
demos.plot_logo(jupyter_backend='panel')
サポートされるモジュール¶
PyVistaモジュールは,Jupyterノートブック内でプロットする際のさまざまなバックエンドをサポートしています:
ipyvtklink を介したノートブックへのPyVistaストリーミングによるサーバ側のレンダリング
Client-side rendering with pythreejs using
threejs.threejsを使用した ipygany によるクライアント側レンダリング.vtk.jsを使用した panel を使用したクライアント側レンダリング.itk.jsとvtk.jsを使用した itkwidgets によるクライアント側レンダリング.静止画像.
各バックエンドの詳細¶
これらの描画バックエンドの使用方法の詳細については,各バックエンドの個々のパッケージページを参照してください.
3 D対話型Jupyterlabプロットの状態¶
注釈
Jupyterノートブック内の3 Dプロットは,Jupyterがまだ比較的新しい技術であることもありますが,ここで使用されているWeb技術も新しい技術であり,ますます多くのユーザや開発者がクラウドやクラウドベースのビジュアライゼーションに移行しているため,急速に発展しています.ここにあるものは壊れ,急速に変化する可能性が高いです
This was written in March 2021 and updated in August 2021, and may already be out of date. Be sure to check the developer websites for any changes.
Jupyterlabを使用してプロットする場合は,多数のモジュールのいずれかを使用することもできますが,それぞれに長所,短所,および短所があります. pyvista は Plotting クラスを使用するときにAPIの違いのいくつかを取り除こうとしますが,プロットはバックエンドによって異なるように見えます.また,バックエンドが異なると要件も異なり,展開環境をサポートしない場合があります.
次の表に,jupyterノートブックプロットモジュールで使用されるさまざまな機能とテクノロジを示します.
Jupyterノートブック3 Dモジュール |
||||
Jupyterlab 3 |
レンダリングの場所 |
バックエンド |
フレームバッファが必要 |
|
panel |
Yes |
クライアント |
vtk.js |
Yes |
pythreejs |
Yes |
クライアント |
threejs |
いいえ |
ipygany |
Yes |
クライアント |
threejs |
いいえ |
ipyvtklink |
Yes |
サーバ |
vtk |
Yes |
itkwidgets |
いいえ |
クライアント |
vtk.js |
Yes |
At the moment, itkwidgets and ipyvtklink are incompatible with
Jupyterlab 3, and will result in a "Error displaying widget: model not
found" message from juptyer. Additionally, all the modules other than
ipygany and pythreejs require a framebuffer, which can be
setup on a headless environment with pyvista.start_xvfb().
However, on Google Colab, where it's not possible to install system
packages, you should stick with a module like threejs, which does
not require any server side rendering or framebuffer.
フレームバッファを必要とするバックエンドのためのヘッドレス環境へのインストールの詳細については, インストール を参照してください.個々のパッケージをインストールする場合,簡単な pip install <package> を使用してJupyterlab 3互換パッケージをインストールできます.詳細は,他のパッケージのインストール手順を参照してください.
PyVistaでの使用法¶
There are two ways to set the jupyter plotting backend. First, it can
be done on a plot by plot basis by setting the jupyter_backend parameter in
either Plotter.show() or dataset.plot(). You can also set it globally with the
pyvista.set_jupyter_backend(). For further details:
- set_jupyter_backend(backend)¶
Jupyterノートブックのプロットバックエンドを設定します.
- パラメータ
- backend
str プロット時に使用するJupyterバックエンドです.次のいずれかである必要があります.
'ipyvtklink': リモートでレンダリングし,結果のVTKイメージをクライアントにストリーミングします.すべてのVTKメソッドをサポートしますが,リモートレンダリングのために遅延が発生します.ヘッドレスサーバーで表示する場合は,仮想フレームバッファをセットアップする必要があります.ipyvtklinkがインストールされている必要があります.'panel': VTKレンダーウィンドウをvtkjsオブジェクトに変換し,それをjupyterlabで視覚化します.ほとんどのVTKオブジェクトをサポートします.ヘッドレスサーバーで表示する場合は,仮想フレームバッファをセットアップする必要があります.panelがインストールされている必要があります.'ipygany': すべてのメッシュをipyganyメッシュに変換し,クライアント側でレンダリングするメッシュをストリーミングします.VTKメッシュをサポートしていますが,他にはほとんどありません.noneを除き,これは仮想フレームバッファを必要としない唯一の方法です.ipyganyがインストールされている必要があります.'pythreejs': Convert all the meshes intopythreejsmeshes and streams those to be rendered on the client side. Aside fromipygany, this is the only method that does not require a virtual framebuffer. Must havepythreejsinstalled.'static': Jupyterlab環境内に単一の静的イメージを表示します.ヘッドレスサーバーで表示する場合も仮想フレームバッファをセットアップする必要がありますが,追加のモジュールをインストールする必要はありません.'none': jupyterlab内にプロットを表示せず,専用のVTKレンダリングウィンドウを使用して表示します.これは,仮想フレームバッファがあっても,ヘッドレスサーバー上では何も生成しません.
- backend
例
Enable the pythreejs backend.
>>> import pyvista as pv >>> pv.set_jupyter_backend('pythreejs')
ipygany バックエンドを有効にします.
>>> import pyvista as pv >>> pv.set_jupyter_backend('ipygany')
panelバックエンドを有効にします.
>>> pv.set_jupyter_backend('panel')
ipyvtklink バックエンドを有効にします.
>>> pv.set_jupyter_backend('ipyvtklink')
静止画像を表示するだけです.
>>> pv.set_jupyter_backend('static')
JupyterLab内のすべてのプロットを無効にし,準のデスクトップVTKレンダリングウィンドウを使用して表示します.
>>> pv.set_jupyter_backend(None) # or 'none'